package com.xht.security.crypto.password;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * <h1>描述 ：密码编码器 </h1>
 *  todo 这里并没有做明确的加密算法
 * @author : 小糊涂
 * @version : 1.0
 * @see org.springframework.security.crypto.password.PasswordEncoder
 **/
@Slf4j
@RequiredArgsConstructor
public class XhtPasswordEncoder implements PasswordEncoder {

    /**
     * 对原始密码进行编码。
     *
     * @param rawPassword 原始密码
     */
    @Override
    public String encode(CharSequence rawPassword) {
        return rawPassword.toString();
    }

    /**
     * 验证从存储中获得的编码密码是否与提交的原始密码匹配密码后，它也被编码。
     * 如果密码匹配则返回true，如果匹配则返回false他们没有。
     * 存储的密码本身永远不会被解码。
     *
     * @param rawPassword     原始密码
     * @param encodedPassword 编码密码
     * @return 如果编码后的原始密码与存储中的编码密码匹配，则为True
     */
    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        return rawPassword.toString().equals(encodedPassword);
    }
}
